home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
gnu
/
objcissu.lha
/
archiving
next >
Wrap
Text File
|
1993-03-01
|
4KB
|
105 lines
From shirley@gothamcity.jsc.nasa.gov Thu Sep 17 10:24:28 1992
Return-Path: <shirley@gothamcity.jsc.nasa.gov>
Received: from albert.gnu.ai.mit.edu by carrara.bos.marble.com (NX5.67c/Marble-3.0)
id AA04684; Thu, 17 Sep 92 10:24:21 -0400
Received: from life.ai.mit.edu by albert.gnu.ai.mit.edu (5.65/4.0) with SMTP
id <AA13193@albert.gnu.ai.mit.edu>; Thu, 17 Sep 92 09:59:35 -0400
Received: from ames.arc.nasa.gov by life.ai.mit.edu (4.1/AI-4.10) id AA13127; Thu, 17 Sep 92 09:59:31 EDT
Received: from gothamcity.jsc.nasa.gov by ames.arc.nasa.gov with SMTP id AA14595
(5.65c/IDA-1.4.4 for <gnu-objc@prep.ai.mit.edu>); Thu, 17 Sep 1992 06:59:28 -0700
Received: from fdr.tech.lab by gothamcity.jsc.nasa.gov (4.1/SMI-4.1)
id AA26868; Thu, 17 Sep 92 08:58:43 CDT
Date: Thu, 17 Sep 92 08:58:43 CDT
From: shirley@gothamcity.jsc.nasa.gov (Bill Shirley [CSC])
Message-Id: <9209171358.AA26868@gothamcity.jsc.nasa.gov>
To: gnu-objc@prep.ai.mit.edu
Subject: Re: Automatic input/output, persistence
I tried to send this easlier, but it bounced at the source. I hope
I'm not repeating something you already got:
]] From shirley Fri Sep 11 13:47:30 1992
|> From: gdb0@lehigh.edu (GLENN BLANK)
I don't understand most of this, I may need more explaining to.
|> A key difference between the NeXT and StepStone foundation class
|> libraries is the latter supports a much more convenient scheme
|> for storing objects to and reading them back from files.
|> The NeXT version, as I understand it (I don't have a NeXT; I have
|> a Sun running Stepstone's version), only supports what I would call
|> "semi-automatic" input/output--that is, the implementor of each subclass
|> must implement methods to archive objects of this subclass. The
On NeXTs, the implementor must archive the instance variables
(that he wants archived)
|> Stepstone library does not require any new implementation at all. If
|> your object is a subclass of Stepstone's Object, it automatically
|> inherits Object's hooks automatic input/output--providing you
|> explicitly link in the relevant code.
What does this *mean*?
"automatically... providing..."?
What relevant code?
|> Semi-automatic input/output is about all C++ libraries can do:
|> since C++ does not support metaclass information at run-time.
|> Automatic input/output is one of the very nice features of Smalltalk,
|> which Objective-C can imitate, because it does support metaclasses,
|> and so can know how to allocate instances of some class when it
|> reads one from a file.
What happens if I have modified the Class in the interim?
(This is a problem that all implementations have to deal with,
I am interested in how Stepstone does (or you (pl) would) in this case)
|> Needless to say, automatic input/output
|> can save a lot of work, especially in continually evolving
|> applications like mine.
By continually evolving, do you mean class implementations are changing?
|> I'd sure like to see support for it in the
|> GNU version, rather than settle for the NeXT interface.
I'll wait to vote until I understand it :-)
|> May I point out that automatic input/output also opens the door
|> for object persistence. This need not imply a full blown OODB,
|> with query capabilities, etc.
What does "object persistence" mean? I'll have to plead ignorant
on much DB theory.
|> The StepStone implementation stores
|> one whole object per file
That does sound like a limitation
|> --the object can be arbitrarily complex,
|> e.g., the filer will handle vanilla C instance variables,
|> chase object ids, yet avoid duplicating objects to which there
|> is more than one pointer. A more flexible design might allow one
|> to store/access many objects per file.
like NIB files.
What if an object creates a large amount of instance variables that it
doesn't NEED to archive. (It could create this extra data for algorithmic
efficiency, for example).
(A string object may keep the number of characters,
the size of the storage it allocated, the number of words, whether the
characters are all numeric, alphabetic,..., but you would only NEED to
archive the actual sequence of characters, the other information can
be computed after the string is unarchived.)
-Bill S.